package com.dao;

import com.entity.User;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface UserMapper {

    int count();
    /**
     * 查询用户列表
     */
    public List<User> getUserList(User user);

    public List<User> getUserListByMap(Map<String,String> userMap);

    /**
     * 添加
     * @param user
     * @return
     */
    public int add(User user);

    /**
     * 修改
     * @param user
     * @return
     */
    public int modify(User user);

    /**
     * 多参个人密码修改
     * @param id
     * @param pwd
     * @return
     */
    public int updatePwd(@Param("id") Integer id,@Param("userPassword") String pwd);

    /**
     * 删除
     * @param delId
     * @return
     */
    public int deleteUserById(@Param("id")Integer delId);

    /**
     * 根据角色id获取用户列表的方法
     * @param roleId
     * @return
     */
    public List<User> getUserListByRoleId(@Param("userRole")Integer roleId);

    /**
     * 根据用户id获取用户信息及地址列表
     * @param userId
     * @return
     */
    public List<User> getAddressListByUserId(@Param("id")Integer userId);

    /**
     * 查询用户列表
     * @param userName
     * @param roleId
     * @return
     */
    public List<User> getUserList1(@Param("userName")String userName,@Param("userRole")Integer roleId);

    /**
     * 数组
     * 根据用户角色列表，获取该角色列表下用户列表信息-foreach_array
     * @param roleIds
     * @return
     */
    public List<User> getUserByRoleId_foreach_array(Integer[] roleIds);

    /**
     * List
     * 根据用户角色列表，获取该角色列表下用户列表信息-foreach_array
     * @param roleList
     * @return
     */
    public List<User> getUserByRoleId_foreach_list(List<Integer> roleList);

    /**
     * Map
     * 根据用户角色列表(多参数)，获取该角色列表下用户列表信息-foreach_array
     * @param conditionMap
     * @return
     */
    public List<User> getUserByConditionMap_foreach_map(Map<String,Object> conditionMap);

    /**
     * 单参数封装成map
     * 根据用户角色列表(多参数)，获取该角色列表下用户列表信息
     * @param roleMap
     * @return
     */
    public List<User> getUserByRoleId_foreach_map(Map<String,Object> roleMap);

    /**
     * 查询用户列表
     * @param userName
     * @param roleId
     * @param userCode
     * @param creationDate
     * @return
     */
    public List<User> getUserList_choose(@Param("userName")String userName, @Param("userRole")Integer roleId, @Param("userCode")String userCode, @Param("creationDate")Date creationDate);

    /**
     * 查询用户列表（分页显示）
     * @param userName
     * @param roleId
     * @param currentPageNo
     * @param pageSize
     * @return
     */
    public List<User> getUserList2(@Param("userName")String userName,@Param("userRole")Integer roleId,@Param("from")Integer currentPageNo,@Param("pageSize")Integer pageSize);
}
